/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package figuras;

import exceptions.ExcecaoDeMedida;
import interfaces.FiguraGeometrica;

/**
 * Rectangle class 
 * @author Daniel Gribel
 */
public class Retangulo implements FiguraGeometrica {
    
    private int base;
    private int altura;
    
    public Retangulo(int base, int altura) throws ExcecaoDeMedida {
        verificarPreCondicoesMedidas(base, altura);
        this.base = base;
        this.altura = altura;
    }
    
    private void verificarPreCondicoesMedidas(int base, int altura) throws ExcecaoDeMedida {
        verificarLadosPositivos(base, altura);
    }
    
    private void verificarLadosPositivos(int base, int altura) throws ExcecaoDeMedida {
        if(base <= 0 || altura <= 0)
            throw new ExcecaoDeMedida(ExcecaoDeMedida._MSG_LADO_NAO_POSITIVO);
    }
        
    public int getAltura() {
        return altura;
    }

    public int getBase() {
        return base;
    }
    
    @Override
    public double perimetro() {
        return (2 * base) + (2 * altura);
        //throw new UnsupportedOperationException("perimetro() method not supported yet.");
    }
    
    @Override
    public double area() {
        return base * altura;
        //throw new UnsupportedOperationException("area() method not supported yet.");
    }
}
